/*
 * AbcFile.h
 *
 *  Created on: 2011-7-23
 *      Author:
 */

#ifndef ABCFILE_H_
#define ABCFILE_H_
#include <vector>
#include "ConstantPool.h"
#include "MethodInfo.h"
//#include "Metadata.h"
namespace swfstream {
class ConstantPool;
class MetadataInfo;
class MethodInfo;
class MethodBody;
class Instance;
class ClassInfo;
class AbcFile {
public:
	AbcFile();
	virtual ~AbcFile();
	uint16 minorVersion;
	uint16 majorVersion;
	ConstantPool* constantPool;
	uint32 methodCount;
	std::vector<MethodInfo*> methodInfos;
	uint32 metadataCount;
	std::vector<MetadataInfo> metadata;
	uint32 classCount;
	std::vector<Instance*> instance;
	std::vector<ClassInfo*> classes;
	uint32 scriptCount;
	uint32 methodBodyCount;
	std::vector<MethodBody*> methodBody;
	virtual TiXmlElement* toTiXmlElement();
};
typedef AbcFile AbcData;
} /* namespace swfstream */
#endif /* ABCFILE_H_ */
